﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace balace_project_new
{
    public partial class Form3 : Form
    {
        #region global variables
        int control = 1, c = 1;
        balance_schemaDataSet.adminDataTable ad = new balance_schemaDataSet.adminDataTable();
        balance_schemaDataSet.adminDataTable ad1 = new balance_schemaDataSet.adminDataTable();
        balance_schemaDataSetTableAdapters.adminTableAdapter adAdapter = new balance_schemaDataSetTableAdapters.adminTableAdapter();
        struct USER 
        {
            public string user;
            public string pass;
            public int numberOfGateway;
            public int IpIndex;
            public int use;
        } ;
        USER user;
        #endregion

        #region form load
        public Form3()
        {
            InitializeComponent();
        }

        private void Form3_Load(object sender, EventArgs e)
        {
            adAdapter.Fill(ad);
            adAdapter.FillBy(ad1);            
            user.user = ad1.Rows[0]["User"].ToString();
            user.pass = ad1.Rows[0]["Password"].ToString();
        }
        #endregion

        #region update user's imformation to database
        private void PbOk_Click(object sender, EventArgs e)
        {
            var m = MessageBox.Show("Bạn có thật sự muốn thay đổi user/pass không ?", "Cảnh báo", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
            control = 0;
            if (m == DialogResult.Yes) apply();
        }
        private void apply()
        {
            string s, s1;
            s = user.user + user.pass;
            s1 = txtOldUser.Text + txtOldPass.Text;
            
            if (s == s1)
            {
                if ((txtNewPass.Text == "") || (txtNewUser.Text == ""))
                {
                    MessageBox.Show(" Vui lòng điền đủ thông tin ", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    txtNewUser.Clear();
                    txtNewPass.Clear();
                    control = 0;
                }
                else
                {
                    int index;
                    int.TryParse(ad1.Rows[0]["AdminID"].ToString(), out index);
                    ad.Rows[index - 1]["User"] = txtNewUser.Text;
                    ad.Rows[index - 1]["Password"] = txtNewPass.Text;
                    adAdapter.Update(ad);
                    MessageBox.Show("Cập nhật thành công", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    control = 0;
                    Close();
                }
            }
            else
            {
                MessageBox.Show("                               CẢNH BÁO \r\n\r\n  Tên đăng nhập cũ hoặc mật khẩu cũ không đúng. \r\n                          Vui lòng nhập lại ! ", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
                control = 0;
            }
        }
        #endregion

        #region close form
        private void PbCancel_Click(object sender, EventArgs e)
        {
            Close();
        }
        #endregion

        #region when user press ENTER, the code below will ask user that he/she really want to change his/her password/user
        private void txtOldUser_KeyUp(object sender, KeyEventArgs e)
        {
            if ((c == 1) && (e.KeyCode == Keys.Enter))
            {
                var m = MessageBox.Show("Bạn có thật sự muốn thay đổi user/pass không ?", "Cảnh báo", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
                control = 0;
                if (m == DialogResult.Yes) apply();
                if (control == 0) c = 0;
                timer1.Enabled = true;
            }
        }

        private void txtOldPass_KeyUp(object sender, KeyEventArgs e)
        {
            if ((c == 1) && (e.KeyCode == Keys.Enter))
            {
                var m = MessageBox.Show("Bạn có thật sự muốn thay đổi user/pass không ?", "Cảnh báo", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
                control = 0;
                if (m == DialogResult.Yes) apply();
                if (control == 0) c = 0;
                timer1.Enabled = true;
            }
        }

        private void txtNewUser_KeyUp(object sender, KeyEventArgs e)
        {
            if ((c == 1) && (e.KeyCode == Keys.Enter))
            {
                var m = MessageBox.Show("Bạn có thật sự muốn thay đổi user/pass không ?", "Cảnh báo", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
                control = 0;
                if (m == DialogResult.Yes) apply();
                if (control == 0) c = 0;
                timer1.Enabled = true;
            }
        }

        private void txtNewPass_KeyUp(object sender, KeyEventArgs e)
        {
            if ((c == 1) && (e.KeyCode == Keys.Enter))
            {
                var m = MessageBox.Show("Bạn có thật sự muốn thay đổi user/pass không ?", "Cảnh báo", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
                control = 0;
                if (m == DialogResult.Yes) apply();
                if (control == 0) c = 0;
                timer1.Enabled = true;
            }
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            c = 1;
            timer1.Enabled = false;
        }
        #endregion

        #region color for buttons
        private void PbOk_Enter(object sender, EventArgs e)
        {
            PbOk.ForeColor = Color.Blue;
        }

        private void PbCancel_Enter(object sender, EventArgs e)
        {
            PbCancel.ForeColor = Color.Blue;
        }

        private void PbOk_Leave(object sender, EventArgs e)
        {
            PbOk.ForeColor = Color.Black;
        }

        private void PbCancel_Leave(object sender, EventArgs e)
        {
            PbCancel.ForeColor = Color.Black;
        }
        #endregion
    }
}
